#pragma once

namespace one_rag {
  namespace App {
    namespace impl {

      struct Gtk2Window;

      struct Gtk2App : ApplicationBase {
        public: // Gtk interface
        Gtk2App();
        ~Gtk2App();
        void Init(int* argc, char** argv); // gtk_init(argc,argv);
        void main(); // gtm_main loop

        public: // Standard Interface
        Gtk2App(int* argc,char** argv){
          Init(argc,argv);
        }
        void Run(){
          main();
        }
        // Create some window type mappings
        typedef Gtk2Window Window;
        typedef Gtk2Window GLWindow;
      };

#ifdef __linux__
      typedef Gtk2App ApplicationDefault;
#endif

    }
  }
}
